//package org.example.msg;
//
//import cn.hutool.http.HttpRequest;
//import com.alibaba.fastjson2.JSON;
//import org.example.utils.DateUtil;
//import org.example.utils.SpringUtil;
//import lombok.extern.slf4j.Slf4j;
//
//import java.net.InetAddress;
//import java.util.Arrays;
//import java.util.HashMap;
//import java.util.List;
//import java.util.Map;
//
//
///**
// * @author: sql
// * @date: 2024/6/7
// * @Description: 微信机器人通知
// * @version: 1.0
// */
//@Slf4j
//public class WXSendMsgUtils {
//
//
//    private static final int timeout = 10000;
//    public static final String CUSTOM_KEYWORDS = "定时器执行错误通知";// 自定义的符号
//
//    /**
//     * 提示@具体选择的某个人
//     *
//     * @param msg        通知消息
//     * @param mobileList 通知人的电话号码
//     */
//    public static void sendMessageAtChosePerson(String webhook, String msg, List<String> mobileList, boolean add) {
//        Map<String, Object> atMap = new HashMap<>();
//        //atMap.put("mentioned_mobile_list", mobileList);
//        String reqString = getString(msg, atMap, add);
//        HttpRequest.post(webhook).body(reqString).timeout(timeout).execute().body();
//    }
//
//    public static void sendMessageAllPerson(String webhook, String msg, boolean add) {
//        Map<String, Object> atMap = new HashMap<>();
//        //atMap.put("mentioned_list", "@all");
//        String reqString = getString(msg, atMap, add);
//        HttpRequest.post(webhook).body(reqString).timeout(timeout).execute().body();
//    }
//
//    /**
//     * 组装消息进行发送
//     *
//     * @param msg   通知消息
//     * @param atMap 通知人的电话号码
//     */
//    public static String getString(String msg, Map<String, Object> atMap, boolean add) {
//        String content = "";
//        if (add) {
//            content = CUSTOM_KEYWORDS + msg;
//        } else {
//            content = msg;
//        }
//        Map<String, Object> contentMap = new HashMap<>();
//        contentMap.put("content", content);
//        contentMap.putAll(atMap);
//        Map<String, Object> reqMap = new HashMap<>();
//        reqMap.put("msgtype", "text");
//        reqMap.put("text", contentMap);
//        return JSON.toJSONString(reqMap);
//    }
//
//    /**
//     * 发送定时器错误消息
//     *
//     * @param jobName
//     * @param e
//     */
//    public static void sendJobMsg(String jobName, Exception e) {
//        try {
//            String profile = SpringUtil.getActiveProfile();
//            log.info("当前环境：{}", profile);
//            if (!Arrays.asList("prod", "st").contains(profile)) {
//                //return;
//            }
//            // 获取本机的 InetAddress 对象
//            InetAddress localHost = InetAddress.getLocalHost();
//            StringBuffer msg = new StringBuffer();
//            msg.append("\n当前环境：").append(profile);
//            msg.append("\nHost Name：").append(localHost.toString());
//            msg.append("\n日期：").append(DateUtil.formatCurrentDateTime());
//            msg.append("\n任务：").append(jobName);
//            stackTraceToString(e, msg);
//            String webhook = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=adec6f97-5d1b-4780-bd02-c399466388a1";
//            sendMessageAllPerson(webhook, msg.toString(), true);
//        } catch (Exception jobe) {
//            log.error("通知错误！", jobe);
//        }
//    }
//
//    /**
//     * 转换异常信息为字符串
//     *
//     * @param e   错误
//     * @param msg 格式化对象
//     */
//    public static void stackTraceToString(Exception e, StringBuffer msg) {
//        String exceptionName = e.getClass().getName();
//        String exceptionMessage = e.getMessage();
//        msg.append("\n异常类型：").append(exceptionName);
//        msg.append("\n异常提示：").append(exceptionMessage);
//    }
//
//}
